package com.solo.springiocdemo.service;

import com.solo.springiocdemo.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/*
 * FileName: UserService.java
 * Description: 业务逻辑层组件-Bean
 * Author:   woolflighthouse@163.com
 * Date:     2025-11-22 12:06
 */
@Service  // 标记这个类为Spring管理的Bean，属于业务逻辑层组件
public class UserService {

    // 声明一个不可变的UserDao依赖
    private final UserDao userDao;

    // 构造方法，Spring会自动注入UserDao实例
    @Autowired  // 告诉Spring通过构造方法自动注入依赖
    public UserService(UserDao userDao) {
        // 将Spring注入的userDao赋值给类的成员变量
        this.userDao = userDao;
    }

    // 显示所有用户的方法
    public void displayAllUsers() {
        // 调用UserDao的方法获取用户列表
        List<String> users = userDao.getAllUsers();
        // 打印标题
        System.out.println("=== 用户列表 ===");
        // 使用Lambda表达式遍历并打印每个用户
        users.forEach(user -> System.out.println("用户: " + user));
    }

    // 显示用户总数的方法
    public void displayUserCount() {
        // 调用UserDao的方法获取用户数量
        int count = userDao.getUserCount();
        // 打印用户总数
        System.out.println("总用户数: " + count);
    }
}
